上传图片
上传图片so easy,只需要两步就OK了。第一步XML中声明,第二步上传。
第一步,设备上传图片需要在XML中的data(也就是上传数据声明)部分定义。如:我们想上传格式为jpg的图片,并且我们想在swaylink想看到最新的图片。那么只需这样简单的定义。我们在XML中data部分声明id为2部分声明。示例如下:
<dev>
<dev_id>demo00</dev_id>
<name>sway-test</name>
<model>Model-I</model>
<maker>sway</maker>
<timezone>8</timezone>
<longitude>104.04124</longitude>
<latitude>39.904214</latitude>
<height>30</height>
<keep_online>0</keep_online>
<data>
<id>2</id>
<name>风景</name>
<remark>窗外的风景</remark>
<unit>sys/file-image</unit>
<storage>latest</storage>
</data>
</dev>
其中,
- name 参数的名字;
- remark 描述信息;
- unit 参数的单位,unit为sys/file-image时,表示参数以图片的格式显示;
- storage 存储方式,storage为latest表示仅保存最新值,也就说我们在swaylink上只会显示最新的图片。
Notice:如果之前已经上传过XML文件,现在修改了XML文件,需要重新上传才能生效哦!
第二步,上传图片就是把图片以二进制的方式读出来,然后通过post的方式访问我们的接口按照我们约定的格式传过来就可以了啦。接口说明如下:
请求地址 http://www.mydehui.com/swaylink.php?m=Queen&c=Upload&a=file**
POST 数据格式 v=2.0&dev_id=xx&token=xx&encrypt=AES128&zip=gzip&load=json_str 其中json_str格式如下
[{"data":[{"id":2,"v":["eHh4eA=="],"t":[1469693723],"size":4,"f":" mutao"}],"dev_id":"mutao1"}]
//也就是下面这个格式
[
{
"data": [
{
"id": 2, //xml中定义的data部分声明的id
"v": [
"eHh4eA==" //base64压缩后的图片内容
],
"t": [
1469693723 //上传的时间戳
],
"size": 4, //图片压缩前的大小
"f": "mutao" //图片希望在系统之保留的名字
}
],
"dev_id": "demo00" //swaylink官网申请的设备号dev_id
}
]
下一面上传图片的PHP示例代码。
//只需在项目中引入phpsdk,修改autoload.php中的设备号和图片路径,就这么简单
require './SLink/SLinkClient.class.php';
$SLinkClient = new \Slink\SLinkClient('demo00'); //设备号
$SLinkClient->uploadFile('test.jpg'); //只需要图片所在路径
下面是刚刚上传的一处风景图片在swaylink平台上的效果
